package cn.technology.forum.service;

import cn.technology.forum.dto.*;
import cn.technology.forum.enums.CommentTypeEnum;
import cn.technology.forum.enums.LikeTypeEnum;
import cn.technology.forum.enums.NotificationStatusEnum;
import cn.technology.forum.enums.NotificationTypeEnum;
import cn.technology.forum.exception.CustomizeErrorCode;
import cn.technology.forum.exception.CustomizeException;
import cn.technology.forum.mapper.*;
import cn.technology.forum.model.*;
import org.apache.ibatis.session.RowBounds;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.ArrayList;
import java.util.List;

@Service
public interface LikeService {


    Object insert(ThumbDTO thumbDTO);


    int insert(Thumb thumb, UserDTO user);


    void createNotify(Thumb thumb, Long receiver, String notifierName, String outerTitle, NotificationTypeEnum notificationType, Long outerId);

    Object removeLikeByIdAndType(Long userId, Long id, Integer type);

    int queryLike(Long targetId, Integer type, Long liker);

    PaginationDTO list(LikeQueryDTO likeQueryDTO);


    Object remove(ThumbDTO thumbDTO);
}

